unit clsRamoAtividade;

interface

uses Dm, dbtables, biblio, sysutils;

type
  TRamoAtividade = class(TObject)
  private
    Ramo_Codigo: string;
  public
    Ramo_Descricao: string;
    function Gravar(p_Ramo_Codigo: string): Byte;
    function Recuperar(p_Ramo_Codigo: string): Byte;
    function Recuperar_ultimo: string;
    function Excluir(p_Ramo_Codigo: string): Byte;
    procedure Consultar(var p_q: TQuery; p_nome: string);
  end;

implementation

function TRamoAtividade.Gravar;
var
  tq: TQuery;
begin
  tq := Tquery.Create(DmInt);
  tq.databasename := dmint.Db.DatabaseName;
  tq.active := False;
  tq.sql.clear;
  tq.params.clear;
  tq.sql.add('SELECT * FROM RamoAtividade where Ramo_Codigo=:k_Ramo_Codigo');
  tq.parambyname('k_Ramo_Codigo').asstring := strzero(p_Ramo_Codigo, 3);
  tq.open;
  if tq.eof then begin
    tq.sql.clear;
    tq.params.clear;
    tq.sql.add('INSERT INTO RamoAtividade VALUES(:k_Ramo_Codigo,:k_Ramo_Descricao)');
  end else begin
    tq.sql.clear;
    tq.params.clear;
    tq.sql.add('UPDATE RamoAtividade SET Ramo_Descricao=:k_Ramo_Descricao WHERE Ramo_Codigo=:k_Ramo_Codigo');
  end;
  tq.parambyname('k_Ramo_Codigo').asstring := strzero(p_Ramo_Codigo, 3);
  tq.parambyname('k_Ramo_Descricao').asstring := Ramo_Descricao;
  tq.close;
  tq.execsql;
  result := 1;
  tq.close;
  tq.Free;
end;

function TRamoAtividade.Recuperar;
var
  tq: TQuery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := DmInt.Db.DatabaseName;
  tq.active := False;
  tq.sql.clear;
  tq.sql.add('SELECT * FROM RamoAtividade where Ramo_Codigo=:k_Ramo_Codigo');
  tq.Params[0].asstring := strzero(p_Ramo_Codigo, 3);
  tq.open;
  Ramo_Codigo := p_Ramo_Codigo;
  if tq.eof then begin
    Ramo_Descricao := '';
    Result := 0;
  end else begin
    Ramo_Descricao := tq.fieldbyname('Ramo_Descricao').asstring;
    Result := 1;
  end;
  tq.Close;
  tq.Free;
end;

function TRamoAtividade.Excluir;
var
  tq: TQuery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := dmint.db.databasename;
  tq.active := False;
  tq.close;
  tq.sql.Clear;
  tq.params.clear;
  tq.sql.add('DELETE FROM RamoAtividade WHERE Ramo_Codigo=:k_Ramo_Codigo');
  tq.parambyname('k_Ramo_Codigo').asstring := strzero(p_Ramo_Codigo, 3);
  tq.execSQL;
  Result := 1;
  tq.close;
  tq.Free;
end;

procedure TRamoAtividade.Consultar;
begin
  p_q.sql.Clear;
  p_q.Params.Clear;
  p_q.sql.add('Select * from RamoAtividade where Ramo_Descricao>=:k_Ramo_Descricao order by Ramo_Descricao');
  p_q.parambyname('k_Ramo_Descricao').asstring := p_nome;
end;

function TRamoAtividade.Recuperar_ultimo: string;
var
  tq: TQuery;
begin
  tq := TQuery.create(DmInt.Db);
  tq.DatabaseName := DmInt.Db.DatabaseName;
  tq.Active := false;
  tq.sql.clear;
  tq.Params.clear;
  tq.SQL.add('Select max(ramo_codigo) as maior from ramoatividade');
  tq.open;
  if tq.fieldbyname('maior').AsString <> '' then
    Result := IntToStr(strtoint(tq.fieldbyname('maior').Asstring) + 1)
  else
    Result := '1';
  if Result > '999' then
    Result := '999';
  tq.close;
  tq.free;
end;

end.
